#ifndef HITgame_h
#define HITgame_h


//once we have strings and display remember to use PROGMEM
//http://www.arduino.cc/en/Reference/PROGMEM

//#include <EEPROM.h>
//#include <stdio.h>
#include "WProgram.h"
#include "PinConfiguration.h"
#include "Sound.h"
#include "Tagger.h"
#include "Player.h"

//TO THE WIKI
/*
-a note about the relations within objects-
 some objects need to use other objects 
 for example both tagger and player use sound
 tagger uses sound to make "bang sounds"
 player uses sound to make "ouch sounds"
 create the sound object in the main sketch
 and then pass the created instance of sound to the constructor of both 
 player and tagger.
 Pass the sound instance as a reference not as a value to conserve memory
 and to avoid conflicts
 */

//TO THE WIKI
/*
-hardware pins-
 some objects need to know about hardware pins
 for example sound needs to know where the pin of buzzer is
 all pin information is stored in PinConfiguration.h but this
 file should only be used in the main sketch
 all other objects in need of pin information should get it at creation time
 via the constructor
 */


class HITgame {

public:
  //VARIABLES (other objects)
  Sound sound;
  Player player;
  Tagger tagger;
  
  //VARIABLES
  boolean indoor;
  boolean triggerValue;
  boolean reloadValue;
  boolean modeValue;
  boolean outputSerial;
  boolean outputDisplay;
  boolean debug;

  //FUNCTIONS
  void begin(boolean setIndoor,boolean setOutputSerial, boolean setOutputDisplay, boolean setDebug);
  void refresh();
  void initializePins();
  void interrupt();
};
#endif





